package com.mini.grpc.transport;

import com.mini.grpc.common.Metadata;
import com.mini.grpc.common.Status;

/**
 * ClientStreamListener接口定义了客户端流监听器的功能。
 * 
 * <p>客户端流监听器用于接收来自服务端的响应和事件。
 *
 * @param <RespT> 响应类型
 */
public interface ClientStreamListener<RespT> {
    
    /**
     * 当收到头部元数据时调用
     *
     * @param headers 头部元数据
     */
    void headersReceived(Metadata headers);
    
    /**
     * 当收到消息时调用
     *
     * @param message 收到的消息
     */
    void messageReceived(RespT message);
    
    /**
     * 当流关闭时调用
     *
     * @param status 关闭状态
     * @param trailers 尾部元数据
     */
    void closed(Status status, Metadata trailers);
} 